package interfaccia;

import javax.swing.*;

import java.awt.Color;
import java.awt.event.*;

public abstract class Menu implements ActionListener {
	
	private static final long serialVersionUID = 1L;

	private JFrame finestra;
	private String voci[];
	
	private JPanel pannelloPulsanti;
	private JButton[] pulsanti;
	
	private final static int HEIGHT_BUTTON=50;
	private final static int WIDTH_BUTTON=300;
	private final static int PADDING=10;
	/*
	 *  costruttore
	 */
	public Menu(String titolo, String[] voci){
	
		finestra = new JFrame(titolo);
		finestra.setLayout(null);
		//finestra.setLayout(new FlowLayout(FlowLayout.CENTER));
		
		finestra.setSize(WIDTH_BUTTON+3*PADDING,(HEIGHT_BUTTON+PADDING)*(voci.length+1));
		finestra.setLocation(200, 100);
		
		pannelloPulsanti = new JPanel();
		pannelloPulsanti.setBounds(0,0,WIDTH_BUTTON+2*PADDING,(HEIGHT_BUTTON+PADDING)*(voci.length+1));
		
		creaMenu(voci);
		finestra.add(pannelloPulsanti);

	}
	
	private void creaMenu(String voci[]){
		pulsanti= new JButton [voci.length];
		
		pannelloPulsanti.setLayout(null);
			for (int i=0; i<voci.length;i++){
				pulsanti[i]= new JButton(voci[i]);
				pulsanti[i].addActionListener(this);
				pulsanti[i].setBounds(PADDING,(HEIGHT_BUTTON+PADDING)*i,WIDTH_BUTTON,HEIGHT_BUTTON);
				pannelloPulsanti.add(pulsanti[i]);
				
				pannelloPulsanti.setBackground(Color.DARK_GRAY);
			}
			
			
	}
	
	public void visualizzaFinestra(){
		finestra.setVisible(true);
	}
	
	public JFrame getFinestra() {
		return finestra;
	}

	public void setFinestra(JFrame finestra) {
		this.finestra = finestra;
	}

	public String[] getVoci() {
		return voci;
	}

	public void setVoci(String[] voci) {
		this.voci = voci;
	}

	public JButton[] getPulsanti() {
		return pulsanti;
	}

	public void setPulsanti(JButton[] pulsanti) {
		this.pulsanti = pulsanti;
	}

	@Override
	/*
	 *
	 */
	public abstract void actionPerformed(ActionEvent e);
	
}